<?php
// Alla fine io la vedo così , se passo l'id bacheca allora vedo la bacheca della persona indicata 
// se non lo passo vedo i messaggi di tutti gli amici 
// in questo modo uso un solo controller 
// limito le cazzate e non duplico il codice
// Questo è quanto.
class Bacheca extends CI_Controller {

	public function __construct(){
		parent::__construct();	
		$this->load->model('mod_auth');
		$this->load->model('bacheca_mod');
		
		$this->load->helper('standard');
		if(!$this->mod_auth->stato_login()){
			 redirect('/login') ; 
		}
	}
	
	// Questa è la funzioen che restituisce il tempo del server
	public function tempo_att(){
		echo time();
	}
	
	
	
	
	// Questa è la parte che fa comparire la form per caricare la foto
	public function carica_foto(){
		
		$this->load->model('setting_mod');
		
		$data['arr_css'][0] = base_url()."assets/css/bacheca.css" ; 
		//$data['arr_js'][0] = base_url()."bacheca/javascript" ; 
		$data['proprietario_bacheca'] = "Clanny.it | Carica Foto Profilo";
		
		$id_bacheca = $this->session->userdata('id_bacheca');
		$id_utente    = $this->session->userdata('id_loggato');
		
		$data_barra_sinistra['setting_a']  = $this->setting_mod->array_setting_a($id_utente , $id_bacheca); 
		$data_barra_sinistra['id_bacheca'] = $id_bacheca ; 
	   $data_barra_sinistra['id_utente']  = $id_utente ; 
		
		
		$this->load->view('fissi/html_start', $data);
		$this->load->view('fissi/menu');
		
		$data_home_bacheca = array();
		$data_barra_destra['data'] = "data";
		$data_pagina['html_barra_laterale_sinistra'] = $this->load->view('bacheca/barra_laterale' , $data_barra_sinistra , true);
		$data_pagina['html_barra_laterale_destra'] = $this->load->view('fissi/accordion' , $data_barra_destra , true);
		$data_pagina['html_pagina_centrale'] = $this->load->view('bacheca/carica_foto' , $data_home_bacheca, true);
		$this->load->view('fissi/contenitore_pagina' , $data_pagina);
		
		$this->load->view('fissi/html_end');
		
	}
	
	// Questa è la funzioen che carica la foto nella cartella, non nel database
	// Perciò il nome non sembra essere appropriato 	
	// io direi che carica la foro e fa il refresh sulla bacheca dell'utente
	// senza dover caricare di nuovo una pagina
	public function carica_foto_db(){
		
		$id_utente     = $this->session->userdata('id_loggato');
		$id_bacheca  = $this->session->userdata('id_bacheca'); 
		
		$foto_size   = $_FILES['foto_profilo']['size'] ;
		$foto_name = $_FILES['foto_profilo']['name'];
		$foto_tmp_name = $_FILES['foto_profilo']['tmp_name'];
		$foto_type   = $_FILES['foto_profilo']['type'] ; 
		
		// directory udenti_doc/id_utente/id_bacheca
		
		
		// queste sono le immagini che vanno create
		// user_big.png 				-> 256 X 256
		// user_medium.png 	-> 128 X 128
		// user_micro.png 		-> 32 X 32
		// user_small.png       -> 48 X 48
				
		$file_att = $_SERVER['SCRIPT_FILENAME'] ; 
		$dir_att  = str_replace("index.php" , "" , $file_att);

		$this->load->library('image_lib');
		$config['image_library'] = 'gd2';
		$config['create_thumb'] = TRUE;
		$config['maintain_ratio'] = TRUE;
		$config['source_image'] = $foto_tmp_name;
		$config['master_dim'] = 'width';
		$config['thumb_marker'] = '';
		$directory = $dir_att."doc/utenti/".$id_utente."/".$id_bacheca."/";
		
		
		//echo $directory."user_big.jpg<br/>";
		//echo "-> è un file -".is_file($directory."user_big.png")."-<br/>";
		//echo "-> è una dir -".is_dir($directory)."-<br/>";
		// echo "->".$_SERVER['SCRIPT_FILENAME']."<-<br/>";
		
		if(is_file($directory."user_big.jpg"))chmod($directory."user_big.jpg", 0777);
		$config['width'] = 256;
		$config['height'] = 256;
		$config['new_image'] = $directory."user_big.jpg";
		$this->image_lib->initialize($config);
		$res_1 = $this->image_lib->resize();
		
		if(is_file($directory."user_medium.jpg"))chmod($directory."user_medium.jpg", 0777);
		$config['width'] = 128;
		$config['height'] = 128;
		$config['new_image'] = $directory."user_medium.jpg";
		$this->image_lib->initialize($config);
		$res_2 = $this->image_lib->resize();
		
		if(is_file($directory."user_small.jpg"))chmod($directory."user_small.jpg", 0777);
		$config['width'] = 48;
		$config['height'] = 48;
		$config['new_image'] = $directory."user_small.jpg";
		$this->image_lib->initialize($config);
		$res_3 = $this->image_lib->resize();
		
		if(is_file($directory."user_micro.jpg"))chmod($directory."user_micro.jpg", 0777);
		$config['width'] = 32;
		$config['height'] = 32;
		$config['new_image'] = $directory."user_micro.jpg";
		$this->image_lib->initialize($config);
		$res_4 = $this->image_lib->resize();
		
		
		if($res_1 && $res_2 && $res_3 && $res_4){
			// questo è il pezzo del redirect
			 redirect('/bacheca/index/'.$id_bacheca) ; 
		}
		else echo $this->image_lib->display_errors();
		
		
	}
	
	public function javascript_anteprima(){
		$this->load->view('bacheca/javascript_anteprima');
	}
	
	
	public function anteprima(){
		$this->load->model('setting_mod');
		
		$data['arr_css'][0] = base_url()."assets/css/bacheca.css" ; 
		//$data['arr_js'][0] = base_url()."bacheca/javascript" ; 
		$data['proprietario_bacheca'] = "Clanny.it | Anteprima bacheca";
		$data['arr_js'][0] = base_url()."bacheca/javascript_anteprima" ; 
		$id_bacheca = $this->session->userdata('id_bacheca');
		$id_utente    = $this->session->userdata('id_loggato');
		
		$data_barra_sinistra['setting_a']  = $this->setting_mod->array_setting_a($id_utente , $id_bacheca); 
		$data_barra_sinistra['id_bacheca'] = $id_bacheca ; 
	   $data_barra_sinistra['id_utente']  = $id_utente ; 
		
		
		$this->load->view('fissi/html_start', $data);
		$this->load->view('fissi/menu');
		
		$data_home_bacheca = array();
		$data_home_bacheca['titolo_bacheca']= $this->mod_auth->nome_pagina($id_utente , $id_bacheca);
		$data_home_bacheca['amicizia_se'] = "0";
		$data_barra_destra['data'] = "data";
		$data_pagina['html_barra_laterale_sinistra'] = $this->load->view('bacheca/barra_laterale' , $data_barra_sinistra , true);
		$data_pagina['html_barra_laterale_destra'] = $this->load->view('fissi/accordion' , $data_barra_destra , true);
		$data_pagina['html_pagina_centrale'] = $this->load->view('bacheca/home_bacheca_non_amico' , $data_home_bacheca, true);
		$this->load->view('fissi/contenitore_pagina' , $data_pagina);
		
		$this->load->view('fissi/html_end');
	}
	
	
	// Questo è l'index
	public function index($id_bacheca=0){
		
		$this->load->model('utenti_mod');
		$this->load->model('setting_mod');
		$this->load->model('amicizia_mod');
		
		
		// L'utente della bacheca lo prendo o dalla variabile id_bacheca o da l'id bacheca loggata
		$id_utente_bacheca = $this->bacheca_mod->id_utente_bacheca($id_bacheca); 
		
		
		//$data_barra['setting_a']  = $this->setting_mod->array_setting_a($id_utente_bacheca , $id_bacheca); 
		//$data_barra['id_bacheca'] = $id_bacheca ; 
	   //$data_barra['id_utente']  = $id_utente_bacheca ; 
		
		$data_barra_sinistra['setting_a']  = $this->setting_mod->array_setting_a($id_utente_bacheca , $id_bacheca); 
		$data_barra_sinistra['id_bacheca'] = $id_bacheca ;  
	    $data_barra_sinistra['id_utente']  = $id_utente_bacheca ;  
		$id_bacheca_amici = ""; 
		
		
		$stato_amicizia = $this->amicizia_mod->verifica_amicizia($id_bacheca);
		
		
		$stato_superadmin = $this->session->userdata('superadmin'); 
		$stato_admin = $this->session->userdata('amministratore'); 
		
		$html_amministratore = "";
		
		// ora devo controllare se la bacheca in cui mi trovo è la mia oppure no
		if($id_bacheca && $id_utente_bacheca!=$this->session->userdata('id_adm') && ($stato_superadmin || $stato_admin) ){
			$html_amministratore = "<div class=\"barra_lat_descrizione\" style=\"background-color : #95A6C8; color : #22335C ;\">
				<span style=\"color : #B83B3B ; font-family : verdana ; font-size : 13pt; font-variant : small-caps ; \">Admin</span><br/><br/>";
				
			// ora devo fare dei controlli per sapere la persona che cazzo di grado possiede
			$arr_ut = $this->utenti_mod->dettaglio_utente_registrato($id_utente_bacheca);
			//print_r($arr_ut);
			if($stato_superadmin && !$arr_ut['superadmin']){
				if(!$arr_ut['amministratore'])$html_amministratore .= "<a href=\"javascript:azioni_admin.promuovi_admin('$id_utente_bacheca' , $id_bacheca);\" class=\"link_persona\"><img src=\"".base_url()."/assets/img/stella_gr.png\" align=\"absmiddle\" border=0></a> &nbsp; Amministratore<br/>"; 
				elseif($arr_ut['amministratore'])$html_amministratore .= "<a href=\"javascript:azioni_admin.rimuovi_admin('$id_utente_bacheca' , $id_bacheca);\" class=\"link_persona\"><img src=\"".base_url()."/assets/img/stella.png\" align=\"absmiddle\" border=0></a> &nbsp; Amministratore<br/>"; 
			}
			
			
			if($stato_admin && !$arr_ut['superadmin']){
				//$html_amministratore .= "Promuovi a sub admin <br/>";
				if(!$arr_ut['subadmin'])$html_amministratore .= "<a href=\"javascript:azioni_admin.promuovi_subadmin('$id_utente_bacheca' , $id_bacheca);\" class=\"link_persona\"><img src=\"".base_url()."/assets/img/stella_gr.png\" align=\"absmiddle\" border=0></a> &nbsp; Sub-admin <br/>"; 
				elseif($arr_ut['subadmin'])$html_amministratore .= "<a href=\"javascript:azioni_admin.rimuovi_subadmin('$id_utente_bacheca' , $id_bacheca);\" class=\"link_persona\"><img src=\"".base_url()."/assets/img/stella.png\" align=\"absmiddle\" border=0></a> &nbsp; Sub-admin <br/>"; 
			}
			//echo $this->session->userdata('id_utente')."".$this->session->userdata('id_adm');
			
			// questo è il pezzo che si può attivare disattivare l'utente
			if($stato_superadmin && !$arr_ut['superadmin'] ){
				//$html_amministratore .= "Promuovi a sub admin <br/>";
				if(!$arr_ut['attivo'])$html_amministratore .= "<a href=\"javascript:azioni_admin.attiva_utente('$id_utente_bacheca' , $id_bacheca);\" class=\"link_persona\"><img src=\"".base_url()."/assets/img/stella_gr.png\" align=\"absmiddle\" border=0></a> &nbsp; Attiva <br/>"; 
				elseif($arr_ut['attivo'])$html_amministratore .= "<a href=\"javascript:azioni_admin.attiva_utente('$id_utente_bacheca' , $id_bacheca);\" class=\"link_persona\"><img src=\"".base_url()."/assets/img/stella.png\" align=\"absmiddle\" border=0></a> &nbsp; Disattiva <br/>"; 
			}
			
			if($this->session->userdata('id_utente')==$this->session->userdata('id_adm'))$html_amministratore .= " <a href=\"javascript:azioni_admin.sublogin('$id_bacheca')\" style=\"color : #22335C ;\">Loggati come questo utente</a> ";
			else $html_amministratore .= " <a href=\"javascript:azioni_admin.ripristina_login('$id_bacheca')\" style=\"color : #22335C ;\">Torna al tuo login</a> ";
			
			$html_amministratore .= "<br/></div>";
		}
		
		// ora supponiamo che io sono un amministratore e che quindi devo poter fare delle azioni sul singolo utente
		// se sono superuser posso creare amministratori
		// se sono amministratore prosso creare sottoamministratori
		// se sono sotto amministratore non posso fare nulla.
		
		
		
		
		
		if($id_bacheca){
		
			// if(!$id_bacheca)$id_bacheca_amici = $this->session->userdata('id_bacheca');
			// else $id_bacheca_amici = $id_bacheca ;
			$id_bacheca_amici = $id_bacheca ;
			$data_elenco_amici['elenco_amici'] = $this->amicizia_mod->elenco_amici($id_bacheca_amici);
			$data['id_bacheca'] = $id_bacheca ;
			$barra_sinistra = $this->load->view('bacheca/barra_laterale' , $data_barra_sinistra , true);
			
			// la barra elenco amici la disattivo perchè lui non è un mio amico e quindi devo sapere il minimo
			if($stato_amicizia=="1")$html_elenco_amici = $this->load->view('fissi/barra_elenco_amici' , $data_elenco_amici , true);
			else $html_elenco_amici = "";
			
			$data_pagina['html_barra_laterale_sinistra'] = $barra_sinistra.$html_elenco_amici ;
		}
		else {
			$data_elenco_amici['elenco_amici'] = $this->amicizia_mod->elenco_amici($this->session->userdata('id_bacheca'));
			$data['id_bacheca'] = $this->session->userdata('id_bacheca') ;
			$data_barra_sinistra['id_bacheca'] = $this->session->userdata('id_bacheca') ;
			//$data_barra_sinistra['utenti_attivi'] = 1 ;  
			//$html_laterale_sinistra = $this->load->view("fissi/barra_sinistra_ultime_news" , $data_barra_sinistra , true);
			$barra_sinistra = $this->load->view('bacheca/barra_laterale' , $data_barra_sinistra , true);
			$html_elenco_amici = $this->load->view('fissi/barra_elenco_amici' , $data_elenco_amici , true);
			
			$data_pagina['html_barra_laterale_sinistra'] = $barra_sinistra.$html_elenco_amici.$html_amministratore ;
			
		}	
		
		$data_barra_destra['data'] = "data";
		
		$data['arr_css'][0] = base_url()."assets/css/bacheca.css" ; 
		
		if($id_bacheca){
			$data['proprietario_bacheca'] =  "Clanny.it | ".$this->utenti_mod->nome_cognome($id_bacheca);
			$data['titolo_bacheca'] =  $this->utenti_mod->nome_cognome($id_bacheca);
		}
		else {
			$data['proprietario_bacheca'] = "Clanny.it | "."Ultime News" ;
			$data['titolo_bacheca'] =  "Ultime News";
		}
		
		
		
		$data_pagina['html_barra_laterale_destra'] = $html_amministratore.$this->load->view('fissi/accordion' , $data_barra_destra , true);
		
		
		
		
		$data_home_bacheca['id_bacheca_home'] = $id_bacheca ;
		
		if($id_bacheca){
			
			// questo è il caso in cui è amico
			if($stato_amicizia=="1"){
				$data['arr_js'][0] = base_url()."bacheca/javascript" ; 
				$this->load->view('fissi/html_start', $data);
				$this->load->view('fissi/menu');
				
				// controllo richiesta amicizia
				$data_home_bacheca['amicizia_se'] = $stato_amicizia;
				$data_pagina['html_pagina_centrale'] = $this->load->view('bacheca/home_bacheca' , $data_home_bacheca , true);
			}
			// questo è il caso in cui non è amico
			else{
				$data['arr_js'][0] = base_url()."bacheca/a_javascript" ; 
				$this->load->view('fissi/html_start', $data);
				$this->load->view('fissi/menu');
				
				// controllo richiesta amicizia
				$data_home_bacheca['amicizia_se'] = $stato_amicizia;
				$data_pagina['html_pagina_centrale'] = $this->load->view('bacheca/home_bacheca_non_amico' , $data_home_bacheca, true);
			}
		}
		else{
			// Questo è il caso che sto nella bacheca in cui vedo tutti i messaggi
			// miei e degli amici 
			$data['arr_js'][0] = base_url()."bacheca/javascript" ; 
			$this->load->view('fissi/html_start', $data);
			$this->load->view('fissi/menu');
			$data_home_bacheca['amicizia_se'] = $stato_amicizia;
			$data_pagina['html_pagina_centrale'] = $this->load->view('bacheca/home_bacheca' , $data_home_bacheca, true);
		}
		
		$this->load->view('fissi/contenitore_pagina' , $data_pagina);
		
		$this->load->view('fissi/html_end');
	}
	
	// Questo serve ad effettuare l'inserimento dei dati nel db.
	public function inserisci_db($id_bacheca){
		$this->load->library('Notifiche_email');
		$testo_form = $this->input->post('testo_condividi');
		//echo "---- > $testo_form < ----" ; 
		//$testo_form = htmlspecialchars($this->input->post('testo_messaggio'));
		$risultato = $this->bacheca_mod->inserisci_messaggio($testo_form , $id_bacheca , $this->mod_auth->id_bacheca());
		
		if(!$risultato['errore']){
			
			$id_mess = $risultato['id'];
			$data_messaggi['elenco_commenti'][$id_mess] = "" ; 
			$data_messaggi['elenco_messaggi'][0] = $risultato ; 
			
			if($risultato['pagina_su_cui_compare'] != $risultato['pagina_che_scrive']){
				$this->notifiche_email->inserisci_messaggio($risultato['pagina_che_scrive'] , $risultato['pagina_su_cui_compare'] , $id_mess ,  $risultato['descr']);
			}
			
			// restituisco l'html del messaggio
			$data_messaggi['elenco_video'][$id_mess] = $this->bacheca_mod->elenco_video($id_mess) ; 
			$html_messaggio = $this->load->view('bacheca/elenco_messaggi' , $data_messaggi , true);
			echo $html_messaggio ; 
		}
		else echo "0" ;
	}
	
	
	// Questo è l'elenco dei commenti
	public function elenco_commenti($id_messaggio ,  $id_bacheca){
		$data['arr_commenti'] = $this->bacheca_mod->elenco_commenti($id_messaggio);
		$data['completa'] = 1 ; 
		$data['id_bacheca'] = $id_bacheca ; 
		$this->load->view('bacheca/elenco_commenti' , $data);
	}
	
	// Questa è al parte che aggiunge un commento
	public function aggiungi_commento($id_messaggio){
		echo $this->bacheca_mod->inserisci_commento($id_messaggio , $this->input->post('testo_commento'));
	}
	
	// Questa è la funzione che serve a cancellare un messaggio
	public function cancella_messaggio($id_messaggio){
		echo $this->bacheca_mod->cancella_messaggio($id_messaggio);
	}
	
		// Questa è la funzione che serve a cancellare un messaggio
	public function cancella_commento($id_commento){
		echo $this->bacheca_mod->cancella_commento($id_commento);
	}
	
	
	public function elenco_messaggi($id_bacheca , $pag_att){
		
		$data['elenco_messaggi'] 	= $this->bacheca_mod->elenco_mess($id_bacheca , $pag_att);
		$data['pag_att'] 				= $pag_att ; 
		$data['id_bacheca']        = $id_bacheca ; 
		// questo cicla su tutti i messaggi non sul singolo commento 
		foreach($data['elenco_messaggi'] as $key=> $value){
			$id_messaggio 					= $value['id'];
			$data_comm['arr_commenti'] = $this->bacheca_mod->elenco_commenti($id_messaggio);
			$data_comm['completa'] 		= 0 ; 
			$data_comm['id_bacheca']        = $id_bacheca ; 
			$data['elenco_commenti'][$id_messaggio] = $this->load->view('bacheca/elenco_commenti' , $data_comm , true);
			$data['elenco_video'][$id_messaggio]        = $this->bacheca_mod->elenco_video($id_messaggio) ; 
		}
		$this->load->view('bacheca/elenco_messaggi' , $data);
	}
	
	
	public function ripristina_login(){
		$this->mod_auth->ripristina_login_amministratore();
	}
	
	public function sublogin($id_bacheca){
		$this->mod_auth->effettua_sub_login($id_bacheca);
	}
	
	
	public function cambia_stato_utente($id_utente){
		$risu  = mysql_query("select * from utenti_registrati where id='$id_utente'"); 
		$num   = mysql_num_rows($risu);
		$arr   = mysql_fetch_array($risu);
		if($num>0 && $this->session->userdata('superadmin')!="0" && $id_utente != ((int)$this->session->userdata('id_loggato')) ){
			$stato = 0 ; 
			if($arr['attivo']=='0') $stato = 1 ; 
			$risu_up  = mysql_query("update utenti_registrati set attivo='$stato' where id='$id_utente'"); 
		}
	}
	
	public function cambia_stato_admin($id_utente){
		
		$id_utente = (int) mysql_real_escape_string($id_utente) ;
		$query = "select * from utenti_registrati where id='$id_utente'";
		$risu  = mysql_query($query); 
		$num   = mysql_num_rows($risu);
		$arr   = mysql_fetch_array($risu);
		// echo " $num >0 && {$this->session->userdata('superadmin')} != \"\" && $id_utente != ((int){$this->session->userdata('id_loggato')})";
		if($num>0 && $this->session->userdata('superadmin')!="0" && $id_utente != ((int)$this->session->userdata('id_loggato')) ){
			$stato = 0 ; 
			if($arr['amministratore']=='0')$stato = 1 ; 
			$query_up = "update utenti_registrati set amministratore='$stato' where id='$id_utente'";
			// echo $query_up;
			$risu_up  = mysql_query($query_up); 
			
		}
	}
	
	public function cambia_stato_subadmin($id_utente){
		$id_utente = (int) mysql_real_escape_string($id_utente) ;
		$query = "select * from utenti_registrati where id='$id_utente'";
		$risu  = mysql_query($query); 
		$num   = mysql_num_rows($risu);
		$arr   = mysql_fetch_array($risu);
		if($num && $this->session->userdata('amministratore') && $id_utente!=$this->session->userdata('id_loggato')){
			$stato = 0 ; 
			if($arr['subadmin']=='0')$stato = 1 ; 
			$query_up = "update utenti_registrati set subadmin='$stato' where id='$id_utente'";
			$risu_up  = mysql_query($query_up); 
			
		}
	}
	
	// Questa è la funzioen che produce il javascript della pagina
	public function javascript(){
		$this->load->view("bacheca/javascript");
	} 
	
	// Questa è la funzioen che produce il javascript della pagina
	public function a_javascript(){
		$this->load->view("bacheca/a_javascript");
	} 
	
	public function javascript_adm(){
		$this->load->view("bacheca/javascript_admin");
	} 
	
}
?>
